package cn.hn.monkey.stock.data;

public class UtilsData {

    public static boolean isAG(String code) {
        return code.startsWith("sh6") || code.startsWith("sz00") || code.startsWith("sz30");
    }

    public static boolean isBG(String code) {
        return code.startsWith("sh9") || code.startsWith("sz2");
    }

    public static final int SUNDAY = 1;
    public static final int MONDAY = 2;
    public static final int TUESDAY = 3;
    public static final int WEDNESDAY = 4;
    public static final int THURSDAY = 5;
    public static final int FRIDAY = 6;
    public static final int SATURDAY = 7;

    public static boolean isWorkDay(int weekday) {
        return weekday > SUNDAY && weekday < SATURDAY;
    }

    public static boolean isHoliday(int date) {
        int year = date / 10000;
        int month = (date / 100) % 100;
        int day = date % 100;
        // 每年元旦放一天，也可能补在后面
        if(month == 1 && day == 1) return true;
        // 每年五一放四天
        if(month == 5 && day >= 1 && day <= 4) return true;
        // 每年国庆放七天
        if(month == 10 && day >= 1 && day <= 7) return true;
        switch(year) {
            case 2022:
                // 中秋节，猴股分析系统遇到的第一个假期就是2022中秋节
                if(month == 9 && day == 12) return true;
                break;
            case 2023:
                // 元旦
                if(month == 1 && day == 2) return true;
                // 春节
                if(month == 1 && day >= 23 && day <= 27) return true;
                // 清明节
                if(month == 4 && day == 5) return true;
                // 端午节
                if(month == 6 && day >= 22 && day <= 23) return true;
                // 中秋节
                if(month == 9 && day == 30) return true;
                break;
            case 2024:
                // 元旦
                // 春节
                // 清明节
                // 端午节
                // 中秋节
                break;
            case 2025:
                // 元旦
                // 春节
                // 清明节
                // 端午节
                // 中秋节
                break;
        }
        return false;
    }

    public static boolean isTradeDay(int weekday, int date) {
        if(!isWorkDay(weekday) || isHoliday(date)) return false;
        return true;
    }
}
